# 数据类型转换
# 从1到35 看到的数据类型
# int float bool complex
# str   字符串
# list  列表
# tuple 元组
# dict 字典
# set  集合

# 1.str转int 只能转数字的字符串
print('1.str转int 只能转数字的字符串')
num = int('1')
print(f'num:{num},数据类型:{type(num)}')

# 2.所有类型转字符串 str
print('\n'*3)
print('2.所有类型转字符串 str')
str_num = str(1)
print(f'str_num:{str_num},数据类型:{type(str_num)}')

# 3.eval() 将字符串当成表达式
print('\n'*3)
print('3.eval() 将字符串当成表达式')
param1 = eval('10+10')
print(f'param1:{param1},数据类型:{type(param1)}')
eval('print("eval能直接执行字符串的代码")')

# 4.str list tuple 相互转换
print('\n'*3)
print('4.str list tuple 相互转换')
print("4.1 str->list str转list")
print("4.1.1 【list()】这是要放可迭代对象,且它不是java那样将['我', '是', '一', '个', '兵'] 这种东西序列化")
st = '我是一个兵'
lst = list(st)
print(f'st:{st},类型:{type(st)},转成list,结果lst:{lst},类型:{type(lst)}')
print("4.1.2 如果st真的是 ['我', '是', '一', '个', '兵']这种结构,那么我们用【eval()】解决")
st = "['我', '是', '一', '个', '兵']"
lst = eval(st)
print(f'st:{st},类型:{type(st)},转成list,结果lst:{lst},类型:{type(lst)}')

print('\n'*2)
print("4.2 str->set str转set")
st = '我是一个兵'
se = set('我是一个兵')
print(f'st:{st},类型:{type(st)},转成set,结果se:{se},类型:{type(se)}')
st = "{'一', '我', '是', '个', '兵'}"
se = eval(st)
print(f'与4.1.2同理 st:{st},类型:{type(st)},转成set,结果se:{se},类型:{type(se)}')

print('\n'*2)
print("4.3 list->set list转set")
lst = list('我是一个兵')
se = set(lst)
print(f'lst:{lst},类型:{type(lst)},转成set,结果se:{se},类型:{type(se)}')
